﻿<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <!--DXMETADATA start type="MetaCharset" --><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"><!--DXMETADATA end-->
    <meta http-equiv="X-UA-Compatible" value="IE=9" />

    <!--DXMETADATA start type="Literal" condition="helpversion:value=3" value="<meta name=""Microsoft.Help.SelfBranded"" content=""true"" />" --><!--DXMETADATA end-->
    <!--DXMETADATA start type="ItemTitle" format="<title>%%ProjectTitle%% - %%ItemTitle%%</title>" --><title>SpreadJS ReadMe - Release Notes for Version 9.40.20153.0</title><!--DXMETADATA end-->
    <!--DXMETADATA start type="ItemTitle" format="<meta name=""Title"" content=""%%ProjectTitle%% - %%ItemTitleNoQuotes%%""/>" --><meta name="Title" content="SpreadJS ReadMe - Release Notes for Version 9.40.20153.0"/><!--DXMETADATA end-->
    
    <!--DXMETADATA start type="PackageLink" packagename="jquery" filetype="script" firstlinkattributes="id=""mshs_support_script"""--><script src="template/packages/jquery/script/default/jquery-1.11.3.min.js" type="text/javascript" id="mshs_support_script"></script><!--DXMETADATA end-->
    <!--DXMETADATA start type="PackageLink" packagename="jquery-ui" filetype="script"--><script src="template/packages/jquery-ui/script/default/jquery-ui-1.11.4.min.js" type="text/javascript"></script><!--DXMETADATA end-->
    <!--DXMETADATA start type="PackageLink" packagename="jquery-ui" filetype="css"--><link rel="stylesheet" type="text/css" href="template/packages/jquery-ui/css/default/jquery-ui-1.11.4.css"></link><!--DXMETADATA end-->
    <!--DXMETADATA start type="TemplateSettingsJson" format="<script type=""text/javascript"">var Innovasys=(Innovasys||{});$.extend(true,Innovasys,{settings:{isHideBodyDuringLoadDisabled:true,dynamictoc:{isEnabled:true},inthistopic:{isSupported:true},dynamicstyles:{isDynamicWordWrapEnabled:true}}},{settings:%%TemplateSettingsJson%%});</script>" --><script type="text/javascript">var Innovasys=(Innovasys||{});$.extend(true,Innovasys,{settings:{isHideBodyDuringLoadDisabled:true,dynamictoc:{isEnabled:true},inthistopic:{isSupported:true},dynamicstyles:{isDynamicWordWrapEnabled:true}}},{settings:{"dynamictoc":{"initialNodeId":"n25","initialNodeContainer":"c0","isResizable":true},"inthistopic":{"isEnabled":true},"currentLocale":"-","isFrameless":true,"navigationKind":"inpage","versions":{"locale":{"currentId":"-"}}}});</script><!--DXMETADATA end-->
    <!--DXMETADATA start type="PackageLink" packagename="light" filetype="css"--><link rel="stylesheet" type="text/css" href="template/packages/light/css/dynamic-toc.css"></link><!--DXMETADATA end-->
    <!--DXMETADATA start type="Synopsis" StripHtmlTags="True" MaxLength="250" format="<meta name=""Description"" content=""%%Synopsis%%"" />"--><meta name="Description" content="Enhancements from the Previous Release

The following features have been added with this version of the product." /><!--DXMETADATA end-->
    
    <!--DXMETADATA start type="PackageLink" packagename="plugins-topics" filetype="css"--><link rel="stylesheet" type="text/css" href="template/packages/plugins-topics/css/default/jquery-plugins.css"></link><!--DXMETADATA end-->
    <!--DXMETADATA start type="PackageLink" packagename="core-topics" filetype="css" firstlinkattributes=" data-mshv2-stylesheet=""/template/packages/core-topics/topics.mshv2.css"" data-mshv1-stylesheet=""/template/packages/core-topics/topics.mshv1.css"" data-responsive-mobile=""template/packages/core-topics/topics.mobile.css"" data-responsive-tablet=""template/packages/core-topics/topics.tablet.css"""--><link rel="stylesheet" type="text/css" href="template/packages/core-topics/css/topics.css"  data-mshv2-stylesheet="/template/packages/core-topics/topics.mshv2.css" data-mshv1-stylesheet="/template/packages/core-topics/topics.mshv1.css" data-responsive-mobile="template/packages/core-topics/topics.mobile.css" data-responsive-tablet="template/packages/core-topics/topics.tablet.css"></link><!--DXMETADATA end-->
    <!--DXMETADATA start type="PackageLink" packagename="plugins-topics" filetype="script"--><script src="template/packages/plugins-topics/script/default/jquery-plugins.min.js" type="text/javascript"></script><!--DXMETADATA end-->
    <!--DXMETADATA start type="PackageLink" packagename="core-topics" filetype="script"--><script src="template/packages/core-topics/script/topics.min.js" type="text/javascript"></script><!--DXMETADATA end-->
    
    <!--DXMETADATA start type="TopicId" format="<meta name=""Microsoft.Help.Id"" content=""%%TopicId%%""/>" --><meta name="Microsoft.Help.Id" content="e08dbe16-bf5f-4a09-bd8f-f2c9c63e6009"/><!--DXMETADATA end-->
    <!--DXMETADATA start type="TocParentId" format="<meta name=""Microsoft.Help.TocParent"" content=""%%TocParentId%%""/>" --><meta name="Microsoft.Help.TocParent" content="80753e0a-efcf-407b-89ce-337c2fd3b27e"/><!--DXMETADATA end-->
    <!--DXMETADATA start type="TocOrdinal" format="<meta name=""Microsoft.Help.TocOrder"" content=""%%TocOrdinal%%""/>" --><meta name="Microsoft.Help.TocOrder" content="12"/><!--DXMETADATA end-->
    <meta name="Microsoft.Help.F1" content=""/>
    <meta name="Microsoft.Help.ContentType" content="Concepts" />
    <!--DXMETADATA start type="MshvKeywords" condition="helpversion:value=3" --><!--DXMETADATA end-->
    <!--DXMETADATA start type="MshvMetaTags" condition="helpversion:value=3" --><!--DXMETADATA end-->
    <!--DXMETADATA start type="Help3CatalogLocale" condition="helpversion:value=3" format="<meta name=""Microsoft.Help.Locale"" content=""%%Help3CatalogLocale%%"" />"--><!--DXMETADATA end-->
    <!--DXMETADATA start type="Help3CatalogLocale" condition="helpversion:value=3" format="<meta name=""Microsoft.Help.TopicLocale"" content=""%%Help3CatalogLocale%%"" />"--><!--DXMETADATA end-->
    <!--DXMETADATA start type="Stylesheets" --><!--DXMETADATA end-->
    <!--DXMETADATA start type="StylePropertyValues" format="<style>%%StylePropertyValues%%</style>" --><style>.i-is-new .i-page-title-text::after, ul#i-dt-root li.i-is-new>a::after { content: "New" }
</style><!--DXMETADATA end-->
    <!--DXMETADATA start type="Scripts" --><!--DXMETADATA end-->
    <!--DXMETADATA start type="DesignTime"--><!--DXMETADATA end-->
    <!--DXMETADATA start type="Scrap" condition="communityenabled" name="_COMMUNITY_PROPERTIES" --><!--DXMETADATA end -->
    <!--DXMETADATA start type="CustomHeadContent" --><link rel="stylesheet" type="text/css" href="template/packages/core-web/css/SP.css">
<script type="text/javascript">
var currentHeader = function() {
    return "spjsreadme";
}
</script>
<script src="template/packages/core-web/script/topNavigation.js"></script>
<script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-WT462SJ"></script>
<script>
        (function (w, d, s, l, i) {
            w[l] = w[l] || [];
            w[l].push({
                'gtm.start': new Date().getTime()
                , event: 'gtm.js'
            });
            var f = d.getElementsByTagName(s)[0]
                , j = d.createElement(s)
                , dl = l != 'dataLayer' ? '&l=' + l : '';
            j.async = true;
            j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
            f.parentNode.insertBefore(j, f);
        })(window, document, 'script', 'dataLayer', 'GTM-WT462SJ');
    </script>

<!--DXMETADATA end-->
</head>

<body>
    <div id="i-before-header-content" class="i-before-header-content">
        
    </div>

    <div id="i-header-container">
        <div id="i-header-content" class="i-header-content i-content-width-container">
            <!--DXMETADATA start type="LogoImage" --><!--DXMETADATA end-->
            <div class="i-project-title"><!--DXMETADATA start type="ProjectTitle" -->SpreadJS ReadMe<!--DXMETADATA end--></div>
            <div class="i-search-container">
                <!--DXMETADATA start type="outputfileextension" format="<form action=""websearch%%outputfileextension%%"">" --><form action="websearch.html"><!--DXMETADATA end-->
                <input id="i-search" name="query"/>
                <input type="submit" id="i-search-button" value=""/>
                <!--DXMETADATA start type="Literal" value="</form>" --></form><!--DXMETADATA end-->
            </div>
            <!--DXMETADATA start type="outputfileextension" format="<a id=""i-index-button"" href=""webindex%%outputfileextension%%""></a>" --><a id="i-index-button" href="webindex.html"></a><!--DXMETADATA end-->
        </div>
    </div>
    
    <div class="i-content-width-container"><div class="i-busy-overlay"></div></div>

    <div id="i-breadcrumbs-outer-container" class="i-content-width-container"><!--DXMETADATA start type="Breadcrumbs" scrap="_BREADCRUMBS" --><div class="i-breadcrumbs-container">
<a href="readme.html">ReadMe</a>
 / <a href="rnotes.html">Release Notes</a>
 / Release Notes for Version 9.40.20153.0</div><!--DXMETADATA end --></div>

    

    <div id="i-actions-outer-container" class="i-content-width-container">
        <div id="i-actions-container">
            <div id="i-actions-content" class="i-fixed-to-top">
                <!-- Spacing --> <span class="i-toggle-all-sections i-function-link">
                <label class="i-collapse-all"><!--DXMETADATA start type="Phrase" name="COLLAPSE_ALL" -->Collapse All<!--DXMETADATA end--></label>
                <label class="i-expand-all" style="display: none;"><!--DXMETADATA start type="Phrase" name="EXPAND_ALL" -->Expand All<!--DXMETADATA end--></label>
            </span><!--DXMETADATA start type="Literal" condition="communityenabled" value="%%scrap:name=_COMMUNITY_DROPDOWN%%" --><!--DXMETADATA end -->
                <div class="i-in-this-topic-container">
                    <span class="i-action-group-heading"><!--DXMETADATA start type="Phrase" Name="IN_THIS_TOPIC" -->In This Topic<!--DXMETADATA end--></span>
                </div>
            </div>
        </div>
    </div>

    <div id="i-toc-outer-container" class="i-content-width-container">
        <div id="i-toc-container">
            <div id="i-toc-content" class="i-fixed-to-top">
                <div class="i-toc-content-scroll-container">
                    <div id="i-dynamic-toc-container"><ul id="i-dt-root"></ul></div>
                </div>
            </div>
        </div>
    </div>

    <div id="i-body-content-container" class="i-content-width-container">
        <div id="i-body-content" class="i-body-content">
            <div class="i-page-title"><div class="i-page-title-text"><!--DXMETADATA start type="ItemTitle" -->Release Notes for Version 9.40.20153.0<!--DXMETADATA end--></div></div>
            <div class="i-in-this-topic-container">
                <span class="i-action-group-heading"><!--DXMETADATA start type="Phrase" Name="IN_THIS_TOPIC" -->In This Topic<!--DXMETADATA end--></span>
            </div>
            <!--DXMETADATA start type="TopicSection" name="BodyText"--><h1>Enhancements from the Previous Release</h1>

<p>The following features have been added with this version of the product.</p>

<ul>
    <li>Widget Features

        <ul>
            <li>A slicer for filtering has been added.</li>

            <li>The fixedPosition method has been added.</li>

            <li>The protectionOption method has been added.</li>

            <li>The Excel Import and Export component has been added.</li>

            <li>Excel-style themes have been added.</li>

            <li>Printing options have been added.</li>

            <li>The scrollIgnoreHiddenRowOrColumn method has been added.</li>

            <li>The resizeZeroIndicator method has been added.</li>

            <li>The tabNavigationVisible method has been added.</li>
        </ul>
    </li>
</ul>

<h1>Changes from the Previous Release</h1>

<ul>
    <li>The Excel Import and Export Service has been replaced by the Excel Import and Export Component.</li>

    <li>SpreadJS no longer requires external dependencies.</li>
</ul>

<p>This version of the product has the following changes.</p>

<h1>Resolved Issues</h1>

<p>The following issues have been resolved since the last release.</p>

<ul>
    <li>Floating objects are now rendered correctly when setting the width for frozen columns. [137098]</li>

    <li>Cell spanning is applied correctly when the cell is in edit mode. [137037]</li>

    <li>The combo box cell now paints correctly. [136679]</li>

    <li>The allowCellOverflow method now works correctly when scrolling. [136560]</li>

    <li>The cell format is now applied correctly. [136370]</li>

    <li>Spaces are no longer removed incorrectly when the text contains a comma. [136251]</li>

    <li>Hidden rows in groups are no longer visible when importing an Excel-formatted file. [135934]</li>

    <li>The Photo calendar template in the SpreadJS designer has been updated. [135422]</li>

    <li>The PROPER function now works correctly. [135420]</li>

    <li>The undo or redo now works correctly when filling a range. [135279]</li>

    <li>Text entered between the "&lt; &gt;" tags is now displayed correctly in the formula bar. [135204]</li>

    <li>The context menu now works correctly when resizing the window. [135132]</li>

    <li>Pictures are now placed correctly when not in view. [134341]</li>

    <li>The JSON date format is now correct. [134210]</li>

    <li>The date format now works correctly. [133909]</li>

    <li>Saving to the ssjson format now works correctly. [133471]</li>

    <li>The correct editor is now created with the combo box cell when using the EnterCell event. [133405]</li>

    <li>Rounding is now applied correctly with a general format. [133025]</li>

    <li>New line characters are now truncated correctly. [132845]</li>

    <li>Scrolling now works correctly with MAC style scrolling. [132296]</li>

    <li>Scrolling and filtering now work correctly with MAC style scrolling. [132292]</li>

    <li>The addCustomName method now works correctly. [132151]</li>

    <li>Custom formats now work correctly. [131997]</li>

    <li>The combo box cell now works correctly with drag and fill. [131724]</li>

    <li>Scrolling now works correctly when selecting SpreadJS. [131665]</li>

    <li>Conditional formats are now applied correctly. [131326]</li>

    <li>Dependent cells are now updated correctly when changing custom names. [131166]</li>

    <li>The SpreadJS designer now works correctly with custom names. [130891]</li>

    <li>The Decrease Decimal option in the SpreadJS designer now works correctly. [130710]</li>

    <li>Finding formulas now woks correctly in the SpreadJS Designer. [130702]</li>

    <li>Custom formats now work correctly. [130662]</li>

    <li>The SUM formula now works correctly. [129660]</li>

    <li>The CONVERT formula now works correctly. [129624]</li>

    <li>Pasting with the Ctrl + V keys now works correctly. [129623]</li>

    <li>Borders now work correctly in the SpreadJS Designer. [129069]</li>

    <li>Date time formats now work correctly. [129056]</li>

    <li>The time format now works correctly. [129049]</li>

    <li>Fraction value formats now work correctly. [129047]</li>

    <li>Changing cell references in Name Manager now works correctly. [129044]</li>

    <li>Pasting to merged cells now works correctly. [128294]</li>

    <li>Copying and pasting more than 5000 rows has been enhanced. [128289]</li>

    <li>Selecting multiple rows, columns, or cells now works correctly. [128275]</li>

    <li>The value alignment is now correct when using combo boxes. [128273]</li>

    <li>The toJSON and fromJSON methods now work correctly. [127519]</li>

    <li>Formulas now work correctly if there is a circular reference. [127145]</li>

    <li>Adding rows now works correctly when using AngularJS. [127140]</li>

    <li>The SUMIFS formula now works correctly. [126999]</li>

    <li>Copy and paste now works correctly. [126184]</li>

    <li>Hexadecimal values now work correctly in SpreadJS. [126183]</li>

    <li>Cells are now highlighted correctly when the formula contains text parameters. [125912]</li>

    <li>The error message pop-up now works correctly with data validation. [125901]</li>

    <li>The hyperlink cell now works correctly if there are multiple tables on the page. [122533]</li>

    <li>Formulas are now displayed correctly in the formula box when there are custom list and array group separators. [122476]</li>

    <li>The getViewportRightColumn method returns the correct value when scrolling. [121565]</li>

    <li>The excelCompatibleFormatString method now works correctly. [121558]</li>

    <li>The evaluateFormula method now works correctly. [121546]</li>

    <li>Formulas are now handled correctly when deleting columns. [121541]</li>

    <li>Decreasing the number of decimal places now works correctly. [120735]</li>

    <li>Certain formulas are now handled correctly when exporting to JSON. [120359]</li>

    <li>Certain custom formats now work correctly. [120229]</li>

    <li>The FormulaListValidator now works correctly. [118625, 118675]</li>

    <li>The JSON schema now works correctly. [118184]</li>

    <li>Importing certain Excel-formatted files now works correctly. [117502]</li>

    <li>Copying and pasting data with quotes now works correctly. [117310]</li>

    <li>The includeBindingSource argument now works correctly. [117232]</li>

    <li>Automatic fill now works correctly if numbers have a large number of decimal places. [116740]</li>

    <li>The SpreadJS Designer now works correctly with a JSON file. [116146]</li>

    <li>Comments now display in the correct location. [115832]</li>

    <li>Certain Excel-formatted files now import correctly. [115590]</li>

    <li>Pasting text into a cell with a formula from an external source now works correctly. [115431]</li>
</ul><!--DXMETADATA end-->
            <a name="seealsobookmark"></a>
            <!--DXMETADATA start type="FilteredItemList" scrap="CATEGORISED_LINKS" namespace="linkcategory" source="Item" filter="" NoHeader="True" NoFooter="True" format="%%replaceinquotes:value=false%%%%scrap:name=_COLLAPSIBLE_HEADER,idprefix=seealso,caption=""%%phrase:name=SeeAlso%%%%designlist:tagidentifier=seealso,itemtype=See Also%%""%%%%filtereditemlist%%</div>"--><!--DXMETADATA end-->
            
            <div id="i-footer-content" class="i-footer-content">
                <!--DXMETADATA start type="Scrap" condition="communityenabled" name="_COMMUNITY_FOOTER" --><!--DXMETADATA end -->
<!--DXMETADATA start type="Variable" name="CopyrightNotice" format="<p>&nbsp;</p><p>&nbsp;</p><hr style=""height: 1px"" /><p>%%variable%%</p>" --><p>&nbsp;</p><p>&nbsp;</p><hr style="height: 1px" /><p><p>Copyright © 2019 GrapeCity, Inc. All rights reserved.</p>
<p><a href="https://www.grapecity.com/forums/spread-sheets" target="_blank">Product Support Forum</a> | <a href="javascript:window.print()">Print this page</a></p>
<ul class="social">
<li><a href="https://www.facebook.com/GrapeCityUS/" target="_blank" class="facebook">&nbsp;</a></li>
<li><a href="https://twitter.com/GrapeCityUS" target="_blank" class="twitter">&nbsp;</a></li>
<li><a href="https://www.linkedin.com/company/grapecity" target="_blank" class="linkedin">&nbsp;</a></li>
</ul>
</p><!--DXMETADATA end -->
<!--DXMETADATA start type="Variable" name="FeedbackLink" format="" --><!--DXMETADATA end-->
            </div>
        </div>
    </div>
        
    <script type="text/javascript">
        $(function () {
            var documentInstance = new Innovasys.Content.Document(document.body);
            documentInstance.load();
        });
    </script>
</body>
</html>
